package cn.tedu.collection.set;

import java.util.ArrayList;
import java.util.TreeSet;

public class TreeSetDemo {
    public static void main(String[] args) {
      /*  //创建集合对象
        TreeSet<String> t=new TreeSet<>();
        //
        t.add("bc");
        t.add("ac");
        t.add("ab");
        t.add("1abc");
        //自动进行排序---升序
        System.out.println(t);*/


        //
        TreeSet<Person> t=new TreeSet<>();
        t.add(new Person("凯",30,80));
        t.add(new Person("露娜",18,90));
        t.add(new Person("大乔",26,90));
        t.add(new Person("张飞",30,59));
        t.add(new Person("诸葛亮",28,110));
        //增强for循环
        for(Person p:t){
            System.out.println(p);
        }

    }
}

//类实现Comparable接口产生的对象才能存放到TreeSet对象身上
//重写方法---指定排序规则
class Person implements Comparable<Person>{
    private String name;
    private int age;
    private int score;

    //有参构造
    public Person(String name,int age,int score){
        this.name=name;
        this.age=age;
        this.score=score;
    }

    //
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", score=" + score +
                '}';
    }
    //根据分数来排序--降序
    //如果返回值是正数表面前面对象大于后面的对象
    //如果返回值是负数表面前面对象小于后面的对象
    //如果返回值是0表面前面对象等于后面的对象
    @Override
    public int compareTo(Person o) {
        return o.score-this.score;
    }
}










